﻿package org.cshoo.common.data.idao;

import java.util.List;

public interface IBaseDAO {
	
	/**
	 * 添加
	 * @param sysUser
	 */
	public Object addObject(Object object);
	
	/**
	 * 根据id获取
	 * @param id
	 * @return 从数据库中取出来的c这种类型的对象
	 */
	public Object getObject(Class c,Long id);
		
	/**
	 * 通过实体的例子查询
	 * @param object
	 * @return 从数据库中取出来的对象实例集合
	 */
	public List<Object> findObjectListByExample(Object objectExample);
	
	
	/**
	 * 通过实体的例子查询记录数
	 * @param object
	 * @return 从数据库中取出来的对象实例集合
	 */
	public Integer getObjectCountByExample(Object objectExample);
	
	/**
	 * 通过实体例子分批查询
	 * @param objectExample 查询条件
	 * @param firstResult 起始记录数
	 * @param maxResults 最大记录个数
	 * @return 从数据库中取出来的对象实例集合
	 */
	public List<Object> findObjectBatcheListByExample(Object objectExample,int firstResult,int maxResults);
	
	
	/**
	 * 修改一个实体对象
	 * 这里的实体对象一定要有和数据库记录相同的id
	 * @param 从数据库中取出来的object实体对象
	 */
	public void updateObject(Object object);
	
	/**
	 * 删除一个实体对象
	 * @param object实体
	 */
	public void deleteObject(Object object);
	
	/**
	 * 批量添加或修改实体对象
	 * 如果这个没有id值那么添加，如果有那么做修改
	 * @param objectList 实体对象列表
	 */
	public void addOrUpdateAllObjectList(List<Object> objectList);
	
	/**
	 * 批量删除实体对象
	 * @param objectList 实体对象列表
	 */
	public void deleteAllObjectList(List<Object> objectList);
}
